在 Kusama 上如何给帐号加 V ?
大家好,我是Phala Network的佟林,然而我在Kusama上的身份不仅仅是EK8veMNH6sVtvhSRo4q1ZRh6huCDm69gxK4eN5MFoZzo3G7
这么简单,大家可以在Kusama网络上看到我的真实信息:
除此以外,我还是一个管理Kusama网络身份的注册商——前些日子我向Kusama提交了一项动议,提议在Kusama上注册新的注册服务商:2号身份注册商。
这不是Kusama的第一个注册商。通过查询身份模块的链状态,可以看到共有三个注册服务商,费用最便宜的就是本注册商(Marvin-Phala Network)了:
今天我以Acala基金会地址为例,给大家讲解下如何在Kusama(或波卡)网络上成为一个身份通过验证的大V。
注册服务商是干什么的?
Kusama/波卡的身份系统
首先,让我们明确一点,我们说的身份注册商,其角色目标是验证和证明链上地址与链下身份的一致性。
如果您熟悉其他区块链,则有可能会问:
我可以在波卡上保持匿名吗? 波卡是否像联盟链一样强制设置身份?
目前,在Kusama上创建的帐户是伪匿名的。您无需提供任何个人数据即可创建帐户。这类似于在比特币或以太坊等链上创建帐户。
那么,Polkadot是否保证匿名?
我的答案是:不一定哦!
假设你在Kusama/波卡上创建了帐户并仔细存储其私钥后,您将获得一个地址。比如:HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN
这样看起来,该帐户是匿名的——但是一旦向该帐户发送或从该帐户发送了一笔交易,您就可以开始跟踪其帐户。用户在自己的帐户之间交易的情况并不少见。
Kusama和Polkadot不像ZCash那样提供匿名交易,如果您需要匿名交易,可以通过波卡平行链 Phala Network 来完成,目前Phala已经实现了在测试网上铸造匿名资产、隐私交易的功能,未来会和其他平行链打通,实现波卡网络资产/业务的隐私保护。
为什么要放弃这种伪匿名性?
答案是:链上治理、节点服务
Polkadot和Kusama提供了一个新颖的功能:链上治理。简而言之,这意味着任何人都可以在链上影响链的行为方式。您没听错,任何用户都可以建议更改Kusama/波卡链的未来。例如,可以通过提案系统将当前运行的runtime通过添加/删除/更改功能后,更新新版本来完成升级。
在Kusama/波卡的NPOS机制中,验证人规模会比较庞大,如何让提名人在如此多的验证人中挑选你的地址,投票给你?这需要你能够脱颖而出——诚实、可信是一个重要因素。我们发现,在表现良好的验证人中,得到了身份验证的占比不小!
在以上两点支持下,您是否还觉得保持链上地址就够了?
虽然Kusama/波卡支持您在帐号-身份设置中填入自己的信息,比如:
但是这并不足够可信!我可以说出两个“不够”的例子:
某个地址宣称自己是Gavin Wood或Web3基金会的官方地址,应该相信他吗? 某个节点宣称自己多了一个节点地址,应该相信他吗?
你应该发现了,这里存在着巨大的骗局空间:上面的信息没有太大价值,因为任何与Genesis Lab无关的用户都可以设置相似的身份。
我们需要一种方法来检查,验证并在链上存储结果。这就是身份注册商的任务。
注册商规则是什么?
“取决于注册商自己” 可能是最合适的答案——每个注册服务商都可以决定何时以及要验证什么。在下一章中,我将描述注册服务商#2
(Marvin) 的规则及其验证身份流程。
验证身份的级别
以下列表将来可能会更改,但以下是帐户可以采用的当前状态:
未知 已付费 合理 很好 过期 低质量 错误
2号身份注册商的规则
以下是2号注册商的规则:
提供到可信度“很好”的级别 “很好”级别需满足两个条件:线下与2号注册商认识超过6个月,并且通过了至少3项信息验证挑战 尽管将对显示名称和法定名称进行粗略检查,以确保其完整性和匹配性,但将不进行进一步检查。显示名称显然与法定名称不匹配的帐户可能会被拒绝 仅考虑具有至少一个通讯渠道(电子邮件,Riot,推特等)的帐户 所有通讯渠道均使用挑战机制进行独立验证。合理级别仅授予通过所有挑战的帐户。
身份挑战
挑战的主要目的是确保给定帐户的所有者也控制着通信渠道,比如推特、邮箱、Riot等等。每个通信渠道都经过独立验证,并接受自己的挑战。
这是一个身份挑战的示例:
{
"account": "HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd",
"challengeRiot": "TZVCTRBICXQALVHO",
"display": "Acala Foundation",
"web": "https://acala.network",
"riot": #acala:matrix.org",
"email": "hello@acala.network",
"twitter": "@AcalaNetwork"
}
认证过程
这是2号注册商的当前认证过程:
1.设置链上身份
尽管您可以直接调用外部函数,但Polkadot UI使其变得更加容易。
用户只能为自己的帐户设置链上身份,因此,用户界面在“帐户”部分下提供了一个按钮也就不足为奇了:
“调用setIdentity
在Kusama控制台/帐号旁边,单击“设置on-chain身份”按钮,将显示以下对话框:
“SetIdentity 重要的是要牢记重新改动后,任何注册服务商证书都将作废,因为在经过注册服务商认证后,链上身份被修改了。因此,建议仔细检查所有内容是否正确。
在链上设置身份目前需要将存款设置为10 KSM。这些资金会被锁定,它们仍然属于您,只要设置完了身份它们就会被锁定在您的帐户中。
2.申请身份验证
Acala基金会为了参与Kusama网络的治理,根据上述步骤完成了身份信息设置,下一步是请求注册服务商来为你提供验证服务,我们将以Acala Foudation的地址HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN
为例说明。
Kusama/波卡的UI界面,选择“交易”,选择Identity
,选择requestJudgement
“setIdentity
在这里,您需要注意以下几点:
确保从您要验证的帐户中请求 确保选择 reg_index
是验证您信息的注册商(我是2号,填2
)最后,请确保提供max_fee与所选注册商所需费用相匹配的正确费用(2号注册商填写1个KSM即可)
提交后,验证状态将更改为“判断:已请求”
目前,注册商验证流程正在自动执行,但在此操作开始之前一直保持手动状态。联系该注册服务商——对于2号注册服务商——你可以在邮箱/微信/Riot上向我发送私人消息。
3.真人交互验证
联系我(微信、邮箱、电报)时,Acala管理员已经不需要提供太多信息:提供KSM帐户地址就足够了。毕竟,所有数据已经在链上了。比如我去查询地址HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN
可以看到Acala基金会设置身份的信息如下:
在检查当前设置的身份是否满足注册服务商#2的验证标准之后,我将对身份中定义的每个渠道产生不同的挑战。
“警告:挑战看起来非常相似,但并不相同。
因为Acala提供的地址HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN
比较特殊,这是一个多签地址,通过const addresses我们可以获取到此地址由三个Kusama地址控制,分别是:
EindYaUViAdardcU5gzFbQxh1jCcuQwhoKQK9vi1e2MkAPd
HEkh52pShreLjbiGuewsnbXTeXFiq5mxqF3TffeHRjsbuN5
HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd
因此,我会向每一个控制地址发起验证挑战,确保每个地址的验证是完全通过的,最后再给总帐号做通过验证的操作。
此外,我将为每个通道(邮件/Riot/推特)完成此挑战-验证过程
我会先根据Acala的链上信息,生成不同的挑战代码 然后将Riot的挑战代码发给Acala的Riot,将推特的挑战代码发给Acala的推特,将邮件的挑战代码发给Acala的邮箱 Acala帐号管理员需要将每个渠道收到的代码进行链上签名,并发送签名哈希回复给Riot、推特、邮件。请使用电子邮件提供电子邮件挑战的签名,必须使用Twitter等提供Twitter挑战的签名...
“注意:要允许2号注册服务商与您联系,在认证过程中必须遵循我的指导
因此我先对Acala申请验证地址的第一个子地址HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd
(Bryan Chen)发起验证。
Acala收到挑战后,将需要使用Polkadot UI对我发送的各个消息进行签名。他可以从UI界面轻松地做到这一点:https://polkadot.js.org/apps/#/toolbox/sign
“解锁帐户进行签名 警告:确保解锁正确的帐户!
对于每个通道,将质询复制到“签署以下数据”字段中,然后单击“签署消息”按钮,如下所示:
Acala完成签名后,帐号管理员需要发送签名哈希通过Riot、推特、邮件给我,他需要使用电子邮件提供电子邮件挑战的签名,必须使用Twitter等提供Twitter挑战的签名
第一步:Riot挑战
第二步:Twitter挑战
第三步:邮件挑战
第四步:注册商2
对签名进行验证
作为注册商,我将检查Acala的签名是否与该渠道代码一致。通常,注册商会通过Riot/电报/微信等IM来通知每次测试的结果。
Acala也可以自己执行这种检查。
比如签名:
{
"account": "HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd",
"challengeRiot": "TZVCTRBICXQALVHO",
"display": "Acala Foundation",
"web": "https://acala.network",
"riot": #acala:matrix.org",
"email": "hello@acala.network",
"twitter": "@AcalaNetwork"
}
使用帐户HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd
可以检查以下签名是否正确:
0x5ecf3b08f06ca4c613b3193a3efd314d428859042651957f5f6dd1039fc5024beba3e8d2b200334e6ba2560c84f3751ab6f6c511b2b872f3abd3279eb8c9ed89
使用Polkadot UI进行检查将如下所示:
“Acala-Riot挑战结果验证成功!
第五步:对其他地址重复验证步骤
因为Acala的地址是一个多签地址,因此我对另一个地址EindYaUViAdardcU5gzFbQxh1jCcuQwhoKQK9vi1e2MkAPd
重复了以上步骤,并也验证成功。
4.注册费
请注意,任何时候都不会将KSM发送给注册服务商,你不需要汇款或转帐。申请requestJudgement时,注册服务商费用将被锁定并保留。仅在完成工作后,它才会转移到注册商。毕竟,我们正在使用不信任的系统。
5.资质认证
Acala帐号的可信度验证成功了!因为此帐号线下与2号注册商认识超过6个月,并且通过了至少3项信息验证挑战,因此我给了“很好”的验证级别!Acala可以用这个地址进行竞选等治理行为了。
注册商将外部信息提交到网络通常需要几秒钟的时间。一旦区块确认,Acala的帐户就会被绿色复选标记修饰,以识别已验证的帐户。
“已验证帐户:Acala基金会
“警告:请记住,从现在开始,调用setIdentity和更改那里的任何信息将使您当前的认证失效,并且您需要从“ 用户请求判断”部分重新开始。
如果大家有验证身份的需求,欢迎扫码关注公众号“Phala可信网络”,进群后找到小助手说明验证需求!
欢迎学习 Substrate:
https://substrate.dev/
关注 Substrate 进展:
https://github.com/paritytech/substrate
关注 Polkadot 进展:
https://github.com/paritytech/polkadot
申请 Bootcamp:
https://bootcamp.web3.foundation/
更多内容:
扫码关注公众号,回复 “1” 加入波卡群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!